
//端口linux 下写法为 字符串   /dev/COM1  /dev/COM1  iComID是句柄。param为波特率 
//  bits\termios.h 比如 #define  B115200  0010002 

typedef int ( *Func_JT_OpenReader)(const char *dev,int iComID,int param);

//关闭读卡器
typedef int (*Func_JT_CloseReader)(int iComID);

//寻卡 返回卡号sCardSer和卡类型 和长度，sCardSer是4个字节无符号 整型。
typedef int (*Func_JT_OpenCard)(int iComID, quint8 *sCardSer, int *iMaxLength);

// 返回值 为
//无卡
#define ICT_None		0   
//卡片类型为S50卡块格式
#define ICT_M1_S50		1
//卡片类型为S50卡MAD 格式
#define ICT_M1_MDA		2
//卡片为PRO 卡
#define ICT_PRO			3
//卡片类型为S70卡块格式
#define ICT_M4_S70		4
//卡片类型为S70卡MAD格式
#define ICT_M4_MAD		5




typedef int (*Func_JT_CloseCard)(int iComID);
//读卡器灯
typedef int (*Func_JT_LEDDisplay)(int iComID, quint8 cRed, quint8 cGreen, quint8 cBlue);
//声音
typedef int (*Func_JT_AudioControl)(int iComID, quint8 cTimes, quint8 cVoice);
//读取块 m1卡
typedef int (*Func_JT_ReadBlock)(int iComID, int iKeyType, int iBlockn, const quint8 *sKey, quint8 *sReply);
typedef int (*Func_JT_WriteBlock)(int iComID, int iKeyType, int iBlockn, const quint8 *sKey, const quint8 *sData);
typedef int (*Func_JT_WriteKey)(int iComID, int iKeyType, int iSec, const quint8 *sKey, const quint8 *sKeyData);
//CPU指令
typedef int (*Func_JT_CPUCCommand)(int iComID, const quint8 *sCommand, int iLenCmd, quint8 *sReply, int *iLenRep);
//重置SAM卡
typedef int (*Func_JT_SamReset)(int iComID, int iSockID, int iBaudrate, int iProtocolType, quint8 *sReply, int *iLenRep);
//更改波特率 一般不用 参见 Func_JT_OpenReader
typedef int (*Func_JT_ChangeSamBaudrate)(int iComID, int iSockID, int iBaudrate, int iProtocolType);
//sam卡指令
typedef int (*Func_JT_SamCommand)(int iComID, int iSockID, const quint8 *sCommand, int iLenCmd, quint8 *sReply, int *iLenRep);
//读文件 
typedef int (*Func_JT_ReadFile)(int iComID,int iFileId,int iKeyType,int iStartBlock,int iBlockNum,quint8 *pReply);
//写文件
typedef int (*Func_JT_WriteFile)(int iComID,int iFileId,int iKeyType,int iStartBlock,int iBlockNum,const quint8 *pData);
//获取最后一次错误
typedef int (*Func_JT_GetLastError)(int iComID, char *sLastError, int iMaxLength);
//读卡器版本号
typedef void (*Func_JT_ReaderVersion)(int iComID, char *sReaderVersion, int iRVerMaxLength, char *sAPIVersion, int iAPIVerMaxLength);
//非必要的函数   选择天线 
typedef int ( *Func_JT_SelectRWUnit)(int iComID, quint8 Unit);
//非必要的函数 设置轮询
typedef int ( *Func_JT_SetScanRWUnits)(int iComID, quint8 Unit);
//非必要的函数   重置
typedef int ( *Func_JT_ResetRF)(int iComID);

//定义动态库接口
Func_JT_OpenReader JT_OpenReader;
Func_JT_CloseReader JT_CloseReader;
Func_JT_OpenCard JT_OpenCard;
Func_JT_CloseCard JT_CloseCard;
Func_JT_LEDDisplay JT_LEDDisplay;
Func_JT_AudioControl JT_AudioControl;
Func_JT_ReadBlock JT_ReadBlock;
Func_JT_WriteBlock JT_WriteBlock;
Func_JT_WriteKey JT_WriteKey;
Func_JT_CPUCCommand JT_CPUCCommand;
Func_JT_SamReset JT_SamReset;
Func_JT_ChangeSamBaudrate JT_ChangeSamBaudrate;
Func_JT_SamCommand JT_SamCommand;
Func_JT_ReadFile JT_ReadFile;
Func_JT_WriteFile JT_WriteFile;
Func_JT_GetLastError JT_GetLastError;
Func_JT_ReaderVersion JT_ReaderVersion;
Func_JT_SelectRWUnit JT_SelectRWUnit;
Func_JT_SetScanRWUnits JT_SetScanRWUnits;
Func_JT_ResetRF JT_ResetRF;
